/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  MDIO模块头文件
  Function List:
            
*******************************************************************************/
#ifndef SYS_MDIO_H 
#define SYS_MDIO_H  

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/


/*=============================================================================
                               Macro Definition
==============================================================================*/

                        
/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/
/* mdio配置参数 */
typedef struct
{
    int regAddr;            /* 寄存器地址 */
    int bit;                /* 寄存器位数 */
    int value;              /* 寄存器值     */
} SYS_mdioRwPrm_t;

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/


/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 
/*******************************************************************************
  Function:     SYS_MdioRead
  Description:  mdio读操作主函数
  Input:        - pIfname: 网卡名
                - phyId: phyid
                - pMdioPrm: 操作参数
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_MdioRead(char *pIfname,
                 int phyId,
                 SYS_mdioRwPrm_t *pMdioPrm);


/*******************************************************************************
  Function:     SYS_MdioWrite
  Description:  mdio写操作主函数
  Input:        - pIfname: 网卡名
                - phyId: phyid
                - pMdioPrm: 操作参数
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_MdioWrite(char *pIfname,
                 int phyId,
                 SYS_mdioRwPrm_t *pMdioPrm);


/*******************************************************************************
  Function:     SYS_MdioPause
  Description:  mdio写操作主函数
  Input:        - pIfname: 网卡名
                - phyId: phyid
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_MdioPause(char *pIfname, int phyId);


#ifdef __cplusplus
}
#endif
#endif // SYS_MDIO_H 


